package com.xhu.controller;

import com.xhu.pojo.User;
import com.xhu.service.UserService;
import com.xhu.utils.ResponseMessage;
import org.apache.ibatis.annotations.Update;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

// User 类对应的控制器
@RestController // 把当前类注入 IOC 容器，返回的数据内容是 json 字符串
@RequestMapping("/user") // 类请求路径，类中所有方法都要加上该路径
public class UserController {
    // 注入 UserService
    @Autowired
    private UserService userService;

    /*
     * 定义请求路径的注解：保证唯一
     *       @RequestMapping：在没有method属性的时候，什么请求方式都可以接收，如果指定了就只能接收对应的请求类型
     *       @PostMapping：只能接收 post 请求，新增
     *       @GetMapping：只能接收 get 请求，查询
     *       @PutMapping：只能接收 put 请求，修改
     *       @DeleteMapping：只能接收 delete 请求，删除
     * */
    @PostMapping("/login")// 前端就可以通过地址：http://localhost:8080/user/login   post 请求访问该方法
    public ResponseMessage login(@RequestBody User user){// @RequestBody：获取请求体里面的内容，json 格式数据
        return userService.login(user.getUsername(), user.getPassword());
    }

    // 加载用户自己的数据
    @GetMapping("/mySelf/{username}")
    public ResponseMessage mySelf(@PathVariable String username){
        return userService.mySelf(username);
    }

    @PutMapping("/updatePassword")
    public ResponseMessage updatePassword(@RequestBody User user){
        return userService.updatePassword(user.getUsername(),user.getPassword());
    }

    @PostMapping("/register")
    public ResponseMessage register(@RequestBody User user){
        return userService.register(user.getUsername(),user.getPassword());
    }
}